package ModeSolo;

import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;

public class SauvScore {

	private SauvScore(){}
	
	public static void encodeToFile(Score myscore,String fileName) throws FileNotFoundException, IOException {
        // ouverture de l'encodeur vers le fichier
        XMLEncoder encoder = new XMLEncoder(new FileOutputStream(fileName));
        try {
        		for(int i=0; i<myscore.getListJeux().size();i++){
        			encoder.writeObject(myscore.getListJeux().get(i));
            		encoder.flush();
        		}
        			
        		myscore.getClassement1();
    			encoder.writeObject(myscore.getClassement1());
    			encoder.flush();
    			
    			encoder.writeObject(myscore.getClassement2());
    			encoder.flush();
    		
        } finally {
            // fermeture de l'encodeur
            encoder.close();
        }
    }
	
	
	public static Score decodeFromFile(String fileName) throws FileNotFoundException, IOException {
	    Score s1 = new Score();
	    ArrayList<String> listeJeux= new ArrayList<String>();
	    
	    XMLDecoder decoder = new XMLDecoder(new FileInputStream(fileName));
	    try {
	    	
	    	for(int i=0; i<4;i++){
    			listeJeux.add(i,(String)decoder.readObject());
    		}
	    	
	    	s1.setListJeux(listeJeux);
	    	s1.setClassement1((HashMap<String,Integer>)decoder.readObject());
	    	s1.setClassement2((HashMap<Integer,String>)decoder.readObject());
	    } finally {
	        // fermeture du decodeur
	        decoder.close();
	    }
	    return s1;
	}
	
	/*      
	 * pas besoin de declaration finalement;
	 * 
	 * 
	 * chargement
	 * try {
	 			Serveur serv = new Serveur();
			 	serv = (Serveur) Sauvegarde1.decodeFromFile("Sauvegarde-Serveur.xml");
	           
	        } catch(Exception e) {
	            e.printStackTrace();
	        }
	 *
	 *sauvegarde
	 *try {
            Sauvegarde1.encodeToFile(serv,"Sauvegarde-Serveur.xml");
           
        } catch(Exception e) {
            e.printStackTrace();
        }
	 */
	
        
}
